﻿namespace Sage.MarkdownRenderer.Html
{
    /// <summary>
    /// HTML 样式提供者
    /// </summary>
    public static class HtmlStyleProvider
    {
        /// <summary>
        /// 获取主题样式
        /// </summary>
        public static string GetThemeStyles(ThemeMode theme)
        {
            return theme switch
            {
                ThemeMode.Dark => @"
                    :root {
                        --bg-primary: #1a1a1a;
                        --bg-secondary: #2d2d2d;
                        --bg-tertiary: #3a3a3a;
                        --text-primary: #e1e1e1;
                        --text-secondary: #b3b3b3;
                        --text-muted: #888;
                        --border-color: #444;
                        --primary-color: #58a6ff;
                        --accent-color: #79c0ff;
                        --success-color: #56d364;
                        --warning-color: #f85149;
                        --error-color: #ff6b6b;
                        --info-color: #58a6ff;
                        
                        /* Alert colors */
                        --info-bg: rgba(88, 166, 255, 0.1);
                        --info-border: rgba(88, 166, 255, 0.3);
                        --info-text: #58a6ff;
                        --warning-bg: rgba(255, 193, 7, 0.1);
                        --warning-border: rgba(255, 193, 7, 0.3);
                        --warning-text: #ffc107;
                        --success-bg: rgba(86, 211, 100, 0.1);
                        --success-border: rgba(86, 211, 100, 0.3);
                        --success-text: #56d364;
                        --error-bg: rgba(248, 81, 73, 0.1);
                        --error-border: rgba(248, 81, 73, 0.3);
                        --error-text: #f85149;
                    }
                    
                    body {
                        background-color: var(--bg-primary);
                        color: var(--text-primary);
                    }
                    
                    /* 深色主题滚动条 */
                    ::-webkit-scrollbar { width: 8px; height: 8px; }
                    ::-webkit-scrollbar-track { background: var(--bg-secondary); }
                    ::-webkit-scrollbar-thumb { 
                        background: var(--bg-tertiary); 
                        border-radius: 4px; 
                        transition: background var(--transition-speed);
                    }
                    ::-webkit-scrollbar-thumb:hover { background: #555; }",

                ThemeMode.Auto => @"
                    :root {
                        --bg-primary: #ffffff;
                        --bg-secondary: #f8f9fa;
                        --bg-tertiary: #e9ecef;
                        --text-primary: #333333;
                        --text-secondary: #666666;
                        --text-muted: #999;
                        --border-color: #dee2e6;
                        --primary-color: #0066cc;
                        --accent-color: #004499;
                        --success-color: #28a745;
                        --warning-color: #ffc107;
                        --error-color: #dc3545;
                        --info-color: #17a2b8;
                        
                        /* Alert colors */
                        --info-bg: rgba(23, 162, 184, 0.1);
                        --info-border: rgba(23, 162, 184, 0.3);
                        --info-text: #17a2b8;
                        --warning-bg: rgba(255, 193, 7, 0.1);
                        --warning-border: rgba(255, 193, 7, 0.3);
                        --warning-text: #856404;
                        --success-bg: rgba(40, 167, 69, 0.1);
                        --success-border: rgba(40, 167, 69, 0.3);
                        --success-text: #155724;
                        --error-bg: rgba(220, 53, 69, 0.1);
                        --error-border: rgba(220, 53, 69, 0.3);
                        --error-text: #721c24;
                    }
                    
                    @media (prefers-color-scheme: dark) {
                        :root {
                            --bg-primary: #1a1a1a;
                            --bg-secondary: #2d2d2d;
                            --bg-tertiary: #3a3a3a;
                            --text-primary: #e1e1e1;
                            --text-secondary: #b3b3b3;
                            --text-muted: #888;
                            --border-color: #444;
                            --primary-color: #58a6ff;
                            --accent-color: #79c0ff;
                        }
                        
                        body {
                            background-color: var(--bg-primary);
                            color: var(--text-primary);
                        }
                    }
                    
                    body {
                        background-color: var(--bg-primary);
                        color: var(--text-primary);
                    }
                    
                    /* 自适应滚动条 */
                    ::-webkit-scrollbar { width: 8px; height: 8px; }
                    ::-webkit-scrollbar-track { background: var(--bg-secondary); }
                    ::-webkit-scrollbar-thumb { 
                        background: var(--bg-tertiary); 
                        border-radius: 4px; 
                        transition: background var(--transition-speed);
                    }
                    ::-webkit-scrollbar-thumb:hover { background: var(--border-color); }",

                _ => @"
                    :root {
                        --bg-primary: #ffffff;
                        --bg-secondary: #f8f9fa;
                        --bg-tertiary: #e9ecef;
                        --text-primary: #333333;
                        --text-secondary: #666666;
                        --text-muted: #999;
                        --border-color: #dee2e6;
                        --primary-color: #0066cc;
                        --accent-color: #004499;
                        --success-color: #28a745;
                        --warning-color: #ffc107;
                        --error-color: #dc3545;
                        --info-color: #17a2b8;
                        
                        /* Alert colors */
                        --info-bg: rgba(23, 162, 184, 0.1);
                        --info-border: rgba(23, 162, 184, 0.3);
                        --info-text: #17a2b8;
                        --warning-bg: rgba(255, 193, 7, 0.1);
                        --warning-border: rgba(255, 193, 7, 0.3);
                        --warning-text: #856404;
                        --success-bg: rgba(40, 167, 69, 0.1);
                        --success-border: rgba(40, 167, 69, 0.3);
                        --success-text: #155724;
                        --error-bg: rgba(220, 53, 69, 0.1);
                        --error-border: rgba(220, 53, 69, 0.3);
                        --error-text: #721c24;
                    }
                    
                    body {
                        background-color: var(--bg-primary);
                        color: var(--text-primary);
                    }
                    
                    /* 浅色主题滚动条 */
                    ::-webkit-scrollbar { width: 8px; height: 8px; }
                    ::-webkit-scrollbar-track { background: var(--bg-secondary); }
                    ::-webkit-scrollbar-thumb { 
                        background: var(--bg-tertiary); 
                        border-radius: 4px; 
                        transition: background var(--transition-speed);
                    }
                    ::-webkit-scrollbar-thumb:hover { background: var(--border-color); }"
            };
        }

        /// <summary>
        /// 获取基础样式
        /// </summary>
        public static string GetBaseStyles()
        {
            return @"
                /* CSS 变量定义 */
                :root {
                    --transition-speed: 0.3s;
                    --border-radius: 6px;
                    --shadow: 0 2px 4px rgba(0,0,0,0.1);
                    --code-font: 'Cascadia Code', 'JetBrains Mono', 'Fira Code', Consolas, 'Courier New', monospace;
                }
                
                /* 基础重置 */
                * {
                    margin: 0;
                    padding: 0;
                    box-sizing: border-box;
                }
                
                html {
                    scroll-behavior: smooth;
                    height: 100%;
                }";
        }

        /// <summary>
        /// 获取Markdown样式
        /// </summary>
        /// <returns></returns>
        public static string GetMarkdownStyles()
        {
            return @"
        /* 标题样式增强 */
        h1, h2, h3, h4, h5, h6 {
            margin: 1.5em 0 0.5em 0;
            font-weight: 600;
            line-height: 1.25;
            color: var(--text-primary);
            position: relative;
        }

        h1 { 
            font-size: 2em; 
            border-bottom: 2px solid var(--primary-color); 
            padding-bottom: 0.3em;
            margin-bottom: 1em;
        }

        h2 { 
            font-size: 1.5em; 
            border-bottom: 1px solid var(--border-color); 
            padding-bottom: 0.3em;
        }

        h3 { font-size: 1.25em; color: var(--primary-color); }
        h4 { font-size: 1.1em; }
        h5 { font-size: 1em; font-weight: 700; }
        h6 { font-size: 0.9em; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 1px; }

        /* 段落和文本增强 */
        p { 
            margin: 1em 0; 
            text-align: left;
            line-height: 1.6;
        }

        /* 只对非引用块的段落应用两端对齐 */
        body > p,
        div:not(blockquote) > p,
        section > p,
        article > p {
            text-align: justify;
        }

        /* 链接增强 */
        a { 
            color: var(--primary-color); 
            text-decoration: none;
            border-bottom: 1px solid transparent;
            transition: all var(--transition-speed) ease;
            position: relative;
        }

        a:hover { 
            color: var(--accent-color);
            border-bottom-color: var(--accent-color);
            transform: translateY(-1px);
        }

        a:active {
            transform: translateY(0);
        }

        /* 强调文本 */
        strong, b { 
            font-weight: 700; 
            color: var(--text-primary);
        }

        em, i { 
            font-style: italic; 
            color: var(--text-secondary);
        }

        mark {
            background: linear-gradient(120deg, transparent 0%, var(--warning-color) 0%, var(--warning-color) 100%, transparent 100%);
            background-size: 100% 40%;
            background-repeat: no-repeat;
            background-position: 0 80%;
            padding: 0 2px;
            color: var(--text-primary);
        }

        /* 删除线 */
        del, s {
            text-decoration: line-through;
            color: var(--text-muted);
            opacity: 0.7;
        }

        /* 引用块增强 - 修复emoji对齐问题 */
        blockquote {
            border-left: 4px solid var(--blockquote-border-color, var(--primary-color));
            margin: 1.5em 0;
            padding: 1em 1.5em 1em 2em; /* 增加左侧内边距 */
            background: var(--bg-secondary);
            border-radius: 0 var(--border-radius) var(--border-radius) 0;
            position: relative;
            font-style: normal;
            box-shadow: var(--shadow);
            overflow: hidden; /* 防止内容溢出 */
        }

        /* 引用块内的段落 - 关键修复 */
        blockquote p {
            margin: 0.5em 0;
            line-height: 1.7; /* 增加行高给emoji更多空间 */
            text-align: left !important;
            display: block; /* 使用block而不是flex */
            word-wrap: break-word;
            overflow-wrap: break-word;
            padding-right: 1em; /* 增加右侧内边距防止裁切 */
        }

        blockquote p:first-child {
            margin-top: 0;
        }

        blockquote p:last-child {
            margin-bottom: 0;
        }

        /* 引用块内emoji特殊处理 */
        blockquote .emoji,
        blockquote p .emoji {
            font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', 'Segoe UI Symbol', sans-serif;
            font-size: 1em;
            vertical-align: baseline;
            margin-right: 0.3em;
            display: inline;
            line-height: inherit;
        }

        /* 确保引用块内所有内容左对齐 */
        blockquote * {
            text-align: left !important;
        }

        blockquote footer {
            margin-top: 1em;
            font-size: 0.9em;
            color: var(--text-secondary);
        }

        blockquote footer::before {
            content: '— ';
        }

        /* 多级引用块支持 */
        blockquote blockquote {
            margin: 0.5em 0;
            border-left-color: var(--accent-color);
            background: var(--bg-tertiary);
            padding: 0.8em 1.2em 0.8em 1.5em;
        }

        /* 列表增强 - 全面修复emoji对齐和遮挡问题 */
        ul, ol { 
            margin: 1em 0; 
            padding-left: 2.5em; /* 增加左侧空间 */
            padding-right: 1em; /* 增加右侧空间防止裁切 */
            box-sizing: border-box;
            width: 100%;
            overflow: visible;
        }

        li { 
            margin: 0.6em 0; 
            line-height: 1.8; /* 增加行高 */
            text-align: left;
            position: relative;
            padding-left: 0.5em;
            padding-right: 0.5em; /* 增加右侧内边距 */
            min-height: 1.5em; /* 增加最小高度 */
            box-sizing: border-box;
            display: list-item;
            word-wrap: break-word;
            overflow-wrap: break-word;
            overflow: visible; /* 确保内容可见 */
        }

        /* 列表标记优化 */
        ul li::marker {
            color: var(--list-marker-color, var(--primary-color));
            font-size: 0.9em;
        }

        ol li::marker {
            color: var(--list-marker-color, var(--primary-color));
            font-weight: bold;
            font-size: 0.9em;
        }

        /* 嵌套列表 */
        ul ul, ol ol, ul ol, ol ul {
            margin: 0.3em 0;
            padding-left: 1.8em;
            padding-right: 0.5em;
        }

        /* 任务列表样式 */
        .task-list-item {
            list-style: none;
            margin-left: -2.5em;
            padding-left: 3em;
            padding-right: 1em;
            position: relative;
        }

        .task-list-item-checkbox {
            margin-right: 0.6em;
            transform: scale(1.1);
            position: absolute;
            left: 0.5em;
            top: 0.2em;
        }

        /* 全局Emoji样式 - 最重要的修复 */
        .emoji {
            font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', 'Segoe UI Symbol', 'Segoe UI', sans-serif !important;
            font-size: 1em !important;
            vertical-align: baseline !important;
            margin-right: 0.3em !important;
            display: inline !important;
            line-height: 1 !important;
            font-weight: normal !important;
            font-style: normal !important;
            text-decoration: none !important;
            width: auto !important;
            height: auto !important;
        }

        /* 确保列表项中的emoji正确显示 */
        li .emoji,
        li > .emoji:first-child {
            vertical-align: baseline !important;
            margin-right: 0.3em !important;
            display: inline !important;
        }

        /* 段落中的emoji */
        p .emoji {
            vertical-align: baseline !important;
            margin-right: 0.2em !important;
        }

        /* 标题中的emoji */
        h1 .emoji, h2 .emoji, h3 .emoji, h4 .emoji, h5 .emoji, h6 .emoji {
            vertical-align: baseline !important;
            margin-right: 0.2em !important;
        }

        /* 响应式优化 - 更精确的断点 */
        @media (min-width: 1400px) {
            ul, ol {
                padding-left: 3em;
                padding-right: 1.5em;
            }
            
            li {
                padding-left: 0.8em;
                padding-right: 0.8em;
            }
            
            blockquote {
                padding: 1.2em 2em 1.2em 2.5em;
            }
        }

        @media (min-width: 1200px) and (max-width: 1399px) {
            ul, ol {
                padding-left: 2.8em;
                padding-right: 1.2em;
            }
            
            li {
                padding-left: 0.6em;
                padding-right: 0.6em;
            }
        }

        @media (min-width: 992px) and (max-width: 1199px) {
            ul, ol {
                padding-left: 2.5em;
                padding-right: 1em;
            }
            
            li {
                padding-left: 0.5em;
                padding-right: 0.5em;
            }
        }

        @media (min-width: 768px) and (max-width: 991px) {
            ul, ol {
                padding-left: 2.2em;
                padding-right: 0.8em;
            }
            
            li {
                padding-left: 0.4em;
                padding-right: 0.4em;
                line-height: 1.7;
            }
            
            blockquote {
                padding: 1em 1.5em 1em 1.8em;
            }
        }

        @media (max-width: 767px) {
            ul, ol {
                padding-left: 2em;
                padding-right: 0.6em;
            }
            
            li {
                padding-left: 0.3em;
                padding-right: 0.3em;
                margin: 0.5em 0;
                line-height: 1.6;
            }
            
            blockquote {
                padding: 0.8em 1.2em 0.8em 1.5em;
            }
            
            .emoji {
                font-size: 0.95em !important;
            }
        }

        /* 表格增强 */
        table {
            border-collapse: collapse;
            width: 100%;
            margin: 1.5em 0;
            border: 1px solid var(--border-color);
            border-radius: var(--border-radius);
            overflow: hidden;
            box-shadow: var(--shadow);
            box-sizing: border-box;
        }

        th, td {
            border: 1px solid var(--border-color);
            padding: 12px 16px;
            text-align: left;
            transition: background-color var(--transition-speed);
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        /* 表格标题行 */
        th {
            background: var(--table-header-bg, linear-gradient(135deg, var(--bg-secondary), var(--bg-tertiary)));
            font-weight: 600;
            color: var(--text-primary);
            position: sticky;
            top: 0;
            z-index: 10;
        }

        /* 表格偶数行 */
        tr:nth-child(even) {
            background-color: var(--table-even-row-bg, var(--bg-secondary));
        }

        /* 表格悬停效果 */
        tr:hover {
            background-color: var(--table-hover-bg, var(--bg-tertiary));
        }

        /* 表格中的emoji */
        table .emoji {
            vertical-align: baseline !important;
            margin-right: 0.2em !important;
        }

        /* 表格文本对齐 */
        table p {
            text-align: left !important;
            margin: 0.25em 0;
        }

        /* 分隔线增强 */
        hr {
            border: none !important;
            height: 3px !important;
            background: linear-gradient(90deg, transparent 0%, var(--hr-color, var(--border-color)) 20%, var(--hr-color, var(--border-color)) 80%, transparent 100%) !important;
            margin: 2em 0 !important;
            border-radius: 2px !important;
            clear: both !important;
            display: block !important;
            width: 100% !important;
            box-sizing: border-box !important;
            opacity: 0.8;
            transition: opacity var(--transition-speed);
        }

        hr:hover {
            opacity: 1;
        }

        /* 备用分隔线样式 */
        @supports not (background: linear-gradient(90deg, red, blue)) {
            hr {
                background: var(--border-color) !important;
                height: 2px !important;
            }
        }

        /* 图片增强 */
        img {
            max-width: 100%;
            height: auto;
            border-radius: var(--border-radius);
            margin: 1em 0;
            box-shadow: var(--shadow);
            transition: transform var(--transition-speed), box-shadow var(--transition-speed);
            box-sizing: border-box;
        }

        img:hover {
            transform: scale(1.02);
            box-shadow: 0 8px 25px rgba(0,0,0,0.15);
        }

        /* 图片标题 */
        figure {
            margin: 1.5em 0;
            text-align: center;
        }

        figcaption {
            font-size: 0.9em;
            color: var(--text-secondary);
            margin-top: 0.5em;
            font-style: italic;
        }

        /* 键盘按键样式 */
        kbd {
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            border-radius: 4px;
            box-shadow: 0 1px 0 var(--border-color), 0 0 0 2px var(--bg-primary) inset;
            color: var(--text-primary);
            display: inline-block;
            font-family: var(--code-font);
            font-size: 0.85em;
            font-weight: 700;
            line-height: 1;
            padding: 2px 4px;
            white-space: nowrap;
        }

        /* 缩写样式 */
        abbr[title] {
            border-bottom: 1px dotted var(--primary-color);
            cursor: help;
            text-decoration: none;
        }

        /* 上标下标 */
        sup, sub {
            font-size: 0.75em;
            line-height: 0;
            position: relative;
            vertical-align: baseline;
        }

        sup { top: -0.5em; }
        sub { bottom: -0.25em; }

        /* 数学公式样式 */
        .math {
            font-family: 'Times New Roman', serif;
            font-style: italic;
        }

        .math-display {
            text-align: center;
            margin: 1em 0;
        }

        /* 脚注样式 */
        .footnote-ref {
            font-size: 0.8em;
            vertical-align: super;
            color: var(--primary-color);
            text-decoration: none;
        }

        .footnote-ref:hover {
            text-decoration: underline;
        }

        .footnotes {
            border-top: 1px solid var(--border-color);
            margin-top: 2em;
            padding-top: 1em;
            font-size: 0.9em;
        }

        .footnotes ol {
            padding-left: 1.5em;
        }

        .footnotes li {
            margin: 0.5em 0;
        }

        /* 定义列表样式 */
        dl {
            margin: 1em 0;
        }

        dt {
            font-weight: 700;
            margin-top: 1em;
            color: var(--text-primary);
        }

        dd {
            margin: 0.5em 0 0.5em 2em;
            color: var(--text-secondary);
        }

        /* 引用和参考文献 */
        .citation {
            font-size: 0.9em;
            color: var(--text-secondary);
        }

        /* 自定义容器样式 */
        .custom-container {
            margin: 1em 0;
            padding: 1em;
            border-radius: var(--border-radius);
            border-left: 4px solid var(--primary-color);
        }

        .custom-container.info {
            background: var(--info-bg);
            border-left-color: var(--info-color);
            color: var(--info-text);
        }

        .custom-container.warning {
            background: var(--warning-bg);
            border-left-color: var(--warning-color);
            color: var(--warning-text);
        }

        .custom-container.success {
            background: var(--success-bg);
            border-left-color: var(--success-color);
            color: var(--success-text);
        }

        .custom-container.error {
            background: var(--error-bg);
            border-left-color: var(--error-color);
            color: var(--error-text);
        }

        /* 媒体链接样式 */
        .media-link {
            display: inline-block;
            margin: 0.5em 0;
            padding: 0.5em;
            border: 1px solid var(--border-color);
            border-radius: var(--border-radius);
            text-decoration: none;
            transition: all var(--transition-speed);
        }

        .media-link:hover {
            background: var(--bg-secondary);
            transform: translateY(-2px);
            box-shadow: var(--shadow);
        }

        /* 确保所有文本内容的基本样式 */
        * {
            word-wrap: break-word;
            overflow-wrap: break-word;
            box-sizing: border-box;
        }

        /* 容器宽度控制 */
        body {
            width: 100%;
            max-width: 100%;
            overflow-x: hidden;
            box-sizing: border-box;
        }

        /* 防止内容溢出 */
        ul, ol, li, p, div, section, article, blockquote {
            max-width: 100%;
            overflow-wrap: break-word;
            word-wrap: break-word;
        }

        /* 特殊符号和标点的颜色控制 */
        .punctuation {
            color: var(--text-secondary);
        }

        /* 行号显示（如果需要） */
        .line-numbers {
            counter-reset: line-number;
        }

        .line-numbers .line::before {
            counter-increment: line-number;
            content: counter(line-number);
            display: inline-block;
            width: 2em;
            text-align: right;
            margin-right: 1em;
            color: var(--text-muted);
            font-size: 0.8em;
        }

        /* 调试辅助样式 - 生产环境请移除 */
        .debug-emoji {
            background: rgba(255, 0, 0, 0.1) !important;
            outline: 1px solid red !important;
        }";
        }

        /// <summary>
        /// 获取代码样式
        /// </summary>
        public static string GetCodeStyles(bool enableCodeCopy = true)
        {
            var copyButtonStyles = enableCodeCopy ? @"
                /* 代码复制按钮 */
                .code-container {
                    position: relative;
                    margin: 1em 0;
                }
                
                .code-copy-btn {
                    position: absolute;
                    top: 8px;
                    right: 8px;
                    background: var(--bg-secondary);
                    border: 1px solid var(--border-color);
                    border-radius: 4px;
                    padding: 4px 8px;
                    font-size: 0.75em;
                    cursor: pointer;
                    opacity: 0;
                    transition: opacity var(--transition-speed);
                    color: var(--text-secondary);
                }
                
                .code-container:hover .code-copy-btn {
                    opacity: 1;
                }
                
                .code-copy-btn:hover {
                    background: var(--primary-color);
                    color: white;
                }" : "";

            return $@"
                /* 代码块增强 */
                pre {{
                    background: var(--bg-secondary);
                    border: 1px solid var(--border-color);
                    border-radius: var(--border-radius);
                    padding: 20px;
                    overflow-x: auto;
                    margin: 1em 0;
                    font-family: var(--code-font);
                    font-size: 0.9em;
                    line-height: 1.5;
                    position: relative;
                    box-shadow: var(--shadow);
                }}
                
                /* 行内代码增强 */
                code {{
                    background: var(--bg-secondary);
                    border: 1px solid var(--border-color);
                    border-radius: 4px;
                    padding: 2px 6px;
                    font-family: var(--code-font);
                    font-size: 0.9em;
                    color: var(--primary-color);
                    font-weight: 500;
                }}
                
                pre code {{
                    background: transparent;
                    border: none;
                    padding: 0;
                    color: inherit;
                    font-weight: normal;
                }}
                
                /* 代码块语言标签 */
                pre[class*='language-']::before {{
                    content: attr(class);
                    position: absolute;
                    top: 0;
                    right: 0;
                    background: var(--primary-color);
                    color: white;
                    padding: 4px 8px;
                    font-size: 0.7em;
                    border-radius: 0 var(--border-radius) 0 4px;
                    text-transform: uppercase;
                    letter-spacing: 1px;
                }}
                
                /* 简单的语法高亮（纯CSS） */
                .token.comment {{ color: var(--text-muted); font-style: italic; }}
                .token.string {{ color: var(--success-color); }}
                .token.number {{ color: var(--warning-color); }}
                .token.keyword {{ color: var(--primary-color); font-weight: bold; }}
                .token.function {{ color: var(--accent-color); }}
                .token.operator {{ color: var(--text-secondary); }}
                .token.punctuation {{ color: var(--text-muted); }}
                
                {copyButtonStyles}";
        }

        /// <summary>
        /// 获取响应式样式
        /// </summary>
        public static string GetResponsiveStyles()
        {
            return @"
        /* 平板样式 */
        @media (max-width: 768px) {
            body { 
                padding: 15px; 
                font-size: 16px; 
            }
            
            h1 { font-size: 1.8em; }
            h2 { font-size: 1.4em; }
            h3 { font-size: 1.2em; }
            
            pre { 
                padding: 15px; 
                font-size: 0.85em;
            }
            
            /* 修复表格响应式问题 */
            .table-responsive {
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
            }
            
            table { 
                font-size: 0.85em;
                min-width: 100%;
                white-space: nowrap;
            }
            
            th, td {
                padding: 8px 12px;
                min-width: 80px;
            }
            
            /* 允许表格内容换行的情况 */
            table.wrap-content {
                white-space: normal;
            }
            
            table.wrap-content th,
            table.wrap-content td {
                white-space: normal;
                word-break: break-word;
                min-width: 60px;
            }
            
            .welcome-container h1 {
                font-size: 2em;
            }
            
            blockquote {
                margin: 1em 0;
                padding: 0.8em 1em;
            }
        }
        
        /* 手机样式 */
        @media (max-width: 480px) {
            body { 
                padding: 10px; 
                font-size: 15px;
            }
            
            .welcome-container { 
                padding: 20px 10px; 
            }
            
            .welcome-container h1 {
                font-size: 1.6em;
            }
            
            h1 { font-size: 1.6em; }
            h2 { font-size: 1.3em; }
            
            pre {
                padding: 10px;
                font-size: 0.8em;
            }
            
            /* 手机端表格优化 */
            table {
                font-size: 0.8em;
            }
            
            th, td {
                padding: 6px 8px;
                font-size: 0.85em;
                min-width: 50px;
            }
            
            /* 超小屏幕时考虑表格垂直布局 */
            @media (max-width: 360px) {
                .table-mobile-stack {
                    display: block;
                }
                
                .table-mobile-stack thead {
                    display: none;
                }
                
                .table-mobile-stack tbody,
                .table-mobile-stack tr,
                .table-mobile-stack td {
                    display: block;
                    width: 100%;
                }
                
                .table-mobile-stack tr {
                    border: 1px solid var(--border-color);
                    margin-bottom: 10px;
                    padding: 10px;
                    border-radius: var(--border-radius);
                }
                
                .table-mobile-stack td {
                    border: none;
                    padding: 5px 0;
                    text-align: left;
                }
                
                .table-mobile-stack td:before {
                    content: attr(data-label) ': ';
                    font-weight: bold;
                    color: var(--text-primary);
                }
            }
            
            blockquote {
                padding: 0.6em 0.8em;
                margin: 0.8em 0;
            }
        }
        
        /* 大屏幕优化 */
        @media (min-width: 1200px) {
            body {
                font-size: 16px;
            }
            
            pre {
                font-size: 0.95em;
            }
            
            table {
                font-size: inherit;
            }
        }";
        }


        /// <summary>
        /// 获取打印样式
        /// </summary>
        public static string GetPrintStyles()
        {
            return @"
                @media print {
                    * {
                        background: transparent !important;
                        color: black !important;
                        box-shadow: none !important;
                        text-shadow: none !important;
                    }
                    
                    body { 
                        font-size: 12pt; 
                        line-height: 1.4;
                        margin: 0;
                        padding: 0;
                    }
                    
                    h1, h2, h3, h4, h5, h6 {
                        break-after: avoid;
                        break-inside: avoid;
                    }
                    
                    pre, blockquote {
                        border: 1px solid #999;
                        break-inside: avoid;
                        background: #f5f5f5 !important;
                    }
                    
                    a {
                        color: #000 !important;
                        text-decoration: underline;
                    }
                    
                    a[href^='http']:after {
                        content: ' (' attr(href) ')';
                        font-size: 0.8em;
                        color: #666;
                    }
                    
                    img {
                        max-width: 100% !important;
                        break-inside: avoid;
                    }
                    
                    table {
                        border-collapse: collapse !important;
                    }
                    
                    th, td {
                        border: 1px solid #ddd !important;
                    }
                    
                    .welcome-container,
                    .empty-content,
                    .code-copy-btn {
                        display: none !important;
                    }
                    
                    /* 分页控制 */
                    h1 { break-before: page; }
                    h2, h3, h4, h5, h6 { break-after: avoid; }
                    p, li { break-inside: avoid; }
                }";
        }

        /// <summary>
        /// 获取动画样式
        /// </summary>
        /// <param name="enableHoverAnimations">是否启用悬停动画</param>
        public static string GetAnimationStyles(bool enableHoverAnimations = true)
        {
            var hoverAnimations = enableHoverAnimations ? @"
                /* 悬停动画 */
                h1:hover, h2:hover, h3:hover {
                    animation: pulse 0.5s ease-in-out;
                }" : "";

            return $@"
                /* 动画定义 */
                @keyframes fadeIn {{
                    from {{ opacity: 0; }}
                    to {{ opacity: 1; }}
                }}
        
                @keyframes slideIn {{
                    from {{ 
                        opacity: 0; 
                        transform: translateY(20px); 
                    }}
                    to {{ 
                        opacity: 1; 
                        transform: translateY(0); 
                    }}
                }}
        
                @keyframes pulse {{
                    0%, 100% {{ transform: scale(1); }}
                    50% {{ transform: scale(1.05); }}
                }}
        
                @keyframes bounce {{
                    0%, 20%, 53%, 80%, 100% {{ transform: translate3d(0,0,0); }}
                    40%, 43% {{ transform: translate3d(0,-8px,0); }}
                    70% {{ transform: translate3d(0,-4px,0); }}
                    90% {{ transform: translate3d(0,-2px,0); }}
                }}
        
                /* 应用动画 */
                .fade-in {{ animation: fadeIn 0.6s ease-in; }}
                .slide-in {{ animation: slideIn 0.5s ease-out; }}
                .pulse {{ animation: pulse 2s infinite; }}
                .bounce {{ animation: bounce 1s; }}
        
                {hoverAnimations}
        
                /* 平滑过渡 */
                * {{
                    transition: all var(--transition-speed) ease;
                }}";
        }

        /// <summary>
        /// 获取组件样式
        /// </summary>
        public static string GetComponentStyles()
        {
            return @"
                /* 欢迎页面样式 */
                .welcome-container {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    min-height: 60vh;
                    text-align: center;
                    padding: 40px 20px;
                }
                
                .welcome-container h1 {
                    margin-bottom: 20px;
                    font-size: 2.5em;
                    font-weight: 300;
                    background: linear-gradient(45deg, var(--primary-color), var(--accent-color));
                    -webkit-background-clip: text;
                    -webkit-text-fill-color: transparent;
                    background-clip: text;
                }
                
                /* 空内容样式 */
                .empty-content {
                    font-style: italic;
                    text-align: center;
                    padding: 60px 20px;
                    opacity: 0.7;
                    font-size: 1.1em;
                }
                
                /* 提示框样式 */
                .alert {
                    padding: 15px;
                    margin: 20px 0;
                    border: 1px solid transparent;
                    border-radius: var(--border-radius);
                    position: relative;
                }
                
                .alert-info {
                    background-color: var(--info-bg);
                    border-color: var(--info-border);
                    color: var(--info-text);
                }
                
                .alert-warning {
                    background-color: var(--warning-bg);
                    border-color: var(--warning-border);
                    color: var(--warning-text);
                }
                
                .alert-success {
                    background-color: var(--success-bg);
                    border-color: var(--success-border);
                    color: var(--success-text);
                }
                
                .alert-error {
                    background-color: var(--error-bg);
                    border-color: var(--error-border);
                    color: var(--error-text);
                }
                
                /* 徽章样式 */
                .badge {
                    display: inline-block;
                    padding: 4px 8px;
                    font-size: 0.75em;
                    font-weight: 600;
                    border-radius: 12px;
                    background: var(--primary-color);
                    color: white;
                    margin: 0 4px;
                }
                
                /* 进度条样式 */
                .progress {
                    width: 100%;
                    height: 20px;
                    background-color: var(--bg-secondary);
                    border-radius: 10px;
                    overflow: hidden;
                    margin: 10px 0;
                }
                
                .progress-bar {
                    height: 100%;
                    background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
                    transition: width var(--transition-speed);
                }";
        }
    }
}
